﻿Imports Commander_Wars.Spieletools
''' <summary>
''' Wird zu erstellen des KO's Sensei verwendet copyright Nintendo und Intelligent System
''' </summary>
''' <remarks></remarks>
Public Class KOSensei
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "SENSEI"
        Armee = Armeen.YC.ToString
        Musik = "Sensei"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 2
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 2
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 2
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 3
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name
        KOLaden()
    End Sub

    Public Overrides Sub KOLaden()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars2
                OffensivStaerke = New FeuerkrafttabelleHelis150UndInf140
                Bewegungsbonus = New BewegungsboniTabelleTransporter_1
            Case CommanderWarsGameModi.AdvanceWarsDS
                OffensivStaerke = New FeuerkrafttabelleHelis150UndInf110
                Bewegungsbonus = New BewegungsboniTabelleTransporter_1
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.AdvanceWarsDC
                OffensivStaerke = New FeuerkrafttabelleCustomHelis(150, 100, 120, 100)
                Bewegungsbonus = New BewegungsboniTabelleTransporter_1
            Case Else
                OffensivStaerke = New FeuerkrafttabelleHelis150
                Bewegungsbonus = New BewegungsboniTabelleTransporter_1
        End Select
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub

    Public Overrides Function GetBaublockade(ByVal Spieler As Integer) As Baublockade
        Return New Baublockade(Baublockade.BauBlockade.InfantryAir, Spieler)
    End Function

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars2
                OffensivStaerke = New FeuerkrafttabelleHelis180UndInf140
                If OhneFunktion = False Then
                    Fallschrimspringer("INF", 90, "SENSEIGABE", "STADT")
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWarsDS
                OffensivStaerke = New FeuerkrafttabelleHelis180UndInf110
                If OhneFunktion = False Then
                    Fallschrimspringer("INF", 90, "SENSEIGABE", "STADT")
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.AdvanceWarsDC
                OffensivStaerke = New FeuerkrafttabelleCustomHelis(180, 100, 130, 100)
                If OhneFunktion = False Then
                    Fallschrimspringer("INF", 90, "SENSEIGABE", "STADT")
                End If
                GabeEingesetzt()
            Case Else
                OffensivStaerke = New FeuerkrafttabelleHelis160
                If OhneFunktion = False Then
                    Fallschrimspringer("INF", 90, "SENSEIGABE", "STADT")
                End If
                GabeEingesetzt()
        End Select

    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectParatroopers("INF", 90, "SENSEIGABE", "STADT"))
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectParatroopers("MECH", 90, "SENSEIGABE", "STADT"))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                OffensivStaerke = New FeuerkrafttabelleHelis180UndInf140
                If OhneFunktion = False Then
                    Fallschrimspringer("INF", 90, "SENSEIGABE", "STADT")
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWars2
                OffensivStaerke = New FeuerkrafttabelleHelis180UndInf140
                If OhneFunktion = False Then
                    Fallschrimspringer(MovementSorts.Mech.ToString.ToUpper, 90, "SPEZIALGABE", "STADT")
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWarsDS
                OffensivStaerke = New FeuerkrafttabelleHelis180UndInf110
                If OhneFunktion = False Then
                    Fallschrimspringer(MovementSorts.Mech.ToString.ToUpper, 90, "SPEZIALGABE", "STADT")
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.AdvanceWarsDC
                OffensivStaerke = New FeuerkrafttabelleCustomHelis(190, 100, 145, 100)
                If OhneFunktion = False Then
                    Fallschrimspringer(MovementSorts.Mech.ToString.ToUpper, 90, "SENSEIGABE", "STADT")
                End If
                GabeEingesetzt()
            Case Else
                OffensivStaerke = New FeuerkrafttabelleHelis190
                If OhneFunktion = False Then
                    Fallschrimspringer(MovementSorts.Mech.ToString.ToUpper, 90, "SPEZIALGABE", "STADT")
                End If
                GabeEingesetzt()
        End Select


    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

Public Class KOBeschreibungSensei
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Sensei"
        Fein = "Faule, Regentage"
        Nein = "=Einkaufsstrassen"
        Beschreibung = New String() {"Ehemaliger Fallschirmspringer, der", "als unbesiegbar galt."}
        Stil = New String() {"Seine Helikopter und Infanteristen", "sind stark alle anderen Einheiten", "sind eher schwach."}
        Gabebeschreibung = New String() {"Infanteristen mit 9 TP erscheinen auf allen", "seinen Staedten."}
        SpezialgabeBeschreibung = New String() {"Mech mit 9 TP erscheinen auf allen", "seinen Staedten."}
        GabeKosten = 2
        Spezialgabekosten = 4
        Gaben = New String() {"Luftkommando", "Lufthoheit"}
        Synergie = New Decimal() {1, 2, 0.5#, 0.5#, -1, 0.5#, -1, 0.5#, 1, 1}
        KONamen = New String() {"GRIMM", "HACHI", "KANBEI", "JAVIER", "VON BOLT", "SONJA", "RATTIGAN", "PETER", "MINAMOTO", "JARED"}
        Doppelgabenamen = New String() {"Donnerblitz", "Seniorenbuendniss", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Veterane", "Doppel-Gabe", "Rolling Thunder"}
        Gabesaetze = New String() {"Krieg bringt nie Gutes hervor. Wenn dies vorbei ist lass uns heimgehen." _
                                      , "Ich habe das, was man braucht um euch Jungspunde zu besiegen." _
                                      , "Fallschirmspringer! Macht euch bereit zum springen." _
                                      , "Ha! Ha! Ha! Das wird ein schneller Sieg!" _
                                      , "Schau was Erfahrung dir bringt!" _
                                      , "Ha! Ha! Ich werde nicht alt! Niemals!"}
        Siegsaetze = New String() {"Hm hm hmmm... Ich habe immer noch was man zum Siegen braucht." _
                                , "Zeit fuer ein Schlaefchen." _
                                , "Nun koennen wir die Sachen wider gemuetlich angehen."}
        Tauschsaetze = New String() {"Der alte Soldat in mir moechte kaempfen." _
                                    , "Oh, Zeit zum tauschen? Junge, das war schnell."}
        Doppelgabesaetze = New DoppelGabesatz() {New DoppelGabesatz("GRIMM", "SENSEI", "Achtung. Blitzgrimm im Anmarsch!", "Hey ganz langsam. Ich bin nicht mehr der Juengste.") _
                                              , New DoppelGabesatz("SENSEI", "GRIMM", "Wir zeigen euch das man auch im Alter noch stark sein kann.", "Yeah! Blitzgrimm kommt.") _
                                              , New DoppelGabesatz("HACHI", "SENSEI", "Kauft bis ihr umfallt! Oder bis ich euch umwerfe.", "Ha! Ha! Ha! Ganz der Geschaeftsmann.") _
                                              , New DoppelGabesatz("HACHI", "SENSEI", "Wir muessen diesen Jungspunden zeigen, wie das geht.", "Ja! Das ist korrekt.") _
                                              , New DoppelGabesatz("PETER", "SENSEI", "Sollen wir ihnen etwas beibringen?", "Wir zeigen euch mal wie man kaempft.") _
                                              , New DoppelGabesatz("SENSEI", "PETER", "Das letzte Mal als wir zusammen gekaempft haben war...", "Das ist Ewigkeiten her! Aber wir haben nichts verlernt!") _
                                              , New DoppelGabesatz("JARED", "SENSEI", "Zeit fuer ein Musikstueck.", "Aber bitte was klassiches.") _
                                              , New DoppelGabesatz("JARED", "SENSEI", "Jetzt gibt es ein heisses Stueck.", "Erwarte aber nicht, dass ich dazu tanze.")}
        Niederlagesaetze = New String() {"Ha! Ha! Wir wurden fair besiegt. Ein Punkt fuer die Jungspunde.", _
                                     "Oh! Der Kampf ist vorbei? Wann ist das passiert?"}
    End Sub
End Class
